//引进路由
import router from './router'
import store from '@/store'
// import { Message } from 'element-ui'
import NProgress from 'nprogress' // 进度条
// import 'nprogress/nprogress.css' // 进度条样式
// import { getToken } from '@/utils/auth' // 从cooki获取令牌
import getPageTitle from '@/utils/get-page-title'

// 设置里有守卫
//   参数
// to：要去哪里
// from:从哪里来
// next: 回调函数，如果直接方形  next()
//如果跳转其他页面 next(其他)
const whiteList = ['/login'] // 白名单重定向
router.beforeEach(async(to,from,next) => {
    NProgress.start()
    const token = store.state.user.token
    // console.log('路由在工作ing.....',token)
    if(token){
        //去登录页
        if(to.path === '/login'){
            // console.log('已登录，不能去login，转主页面')
            next('/')
        }else{
            if(!store.getters.userId){
                // console.log(123)
                await store.dispatch('user/getUserInfo')
            }
            console.log('store.getters.userId',store.getters.userId);
            next()
        }

    }else{
        // 没有登录，去白名单
        if(whiteList.includes(to.path)){
            next()
        }else{
            // console.log('没登录转登录页')
            next('/login')
        }
    }
})
// 路由守卫
router.beforeEach((to, from, next) => {
    document.title = getPageTitle(to.meta.title)
    next()
   })
   router.afterEach(() => {
  // 完成进度条
  NProgress.done()
})
// NProgress.configure({ showSpinner: false }) // nprogress Configuration

// 
// // 全局前置路由守卫
// router.beforeEach(async(to, from, next) => {
//   console.log('路由在工作ing.....')
//   // 开始进度条
//   NProgress.start()

//   // 设置页面标题
//   document.title = getPageTitle(to.meta.title)

//   // 确定用户是否已登录
//   const hasToken = getToken()

//   if (hasToken) {
//     if (to.path === '/login') {
//       // 如果已登录，请重定向到主页
//       next({ path: '/' })
//       NProgress.done()
//     } else {
//       const hasGetUserInfo = store.getters.name
//       if (hasGetUserInfo) {
//         next()
//       } else {
//         try {
//           // 获取用户信息
//           await store.dispatch('user/getInfo')

//           next()
//         } catch (error) {
//           // 删除令牌并转到登录页以重新登录
//           await store.dispatch('user/resetToken')
//           Message.error(error || 'Has Error')
//           next(`/login?redirect=${to.path}`)
//           NProgress.done()
//         }
//       }
//     }
//   } else {
//     /* has no token*/

//     if (whiteList.indexOf(to.path) !== -1) {
//       // 在免费登录白名单中，直接进入
//       next()
//     } else {
//       // 其他没有访问权限的页面将重定向到登录页面。
//       next(`/login?redirect=${to.path}`)
//       NProgress.done()
//     }
//   }
// })

// router.afterEach(() => {
//   // 完成进度条
//   NProgress.done()
// })
